# @Author  : wangyiruo
# @Time    : 2024/12/4 17:47
# @Project：Python70_class
import json
from loguru import logger

from jsonpath import jsonpath

from data.envi_data import EnviData


# 封装
def extract_resp(response, extract_data):
    if extract_data is None:
        logger.info("没有从响应结果里要提取的数据")
        return
    logger.info("=========开始提取数据===========")
    extract_data = json.loads(extract_data)
    logger.info(f"提取数据的表达式是：{extract_data}")
    for k, v in extract_data.items():
        result = None
        if v.startswith("$"):
            result = jsonpath(response.json(), v)[0]
            setattr(EnviData, k, result)
        elif v == "text":
            logger.info(f"v是{v}类型")
            result = response.text
            setattr(EnviData, k, result)
        logger.info(f"提取出去的数据是:{result}")
    logger.info(f"提取并设置环境变量后的类属性为：{EnviData.__dict__}")


if __name__ == '__main__':
    response = "10ed7a8f2aae4abf85081514d3c1f4b2"
    extract_data = '{"check_code":"text"}'
    extract_resp(response, extract_data)
